/**
 在JavaScript里使用typeof判断数据类型，只能区分基本类型，即：number、string、undefined、boolean、object。
 对于null、array、function、object来说，使用typeof都会统一返回object字符串。
 要想区分对象、数组、函数、单纯使用typeof是不行的。在JS中，可以通过Object.prototype.toString方法，判断某个对象之属于哪种内置类型。
 分为null、string、boolean、number、undefined、array、function、object、date、math。

 */

function getTypeName(o) {
    return Object.prototype.toString.call(o);
}


console.log(getTypeName([])) // [object Array]
console.log(getTypeName({})) // [object Object]
console.log(getTypeName(function(){})) // [object Function]
console.log(getTypeName('abc')) // [object String]
console.log(getTypeName(123)) // [object Number]
console.log(getTypeName(true)) // [object Boolean]
console.log(getTypeName(null)) // [object Null]
console.log(getTypeName(undefined)) // [object Undefined]
console.log(getTypeName(new Date())) // [object Date]
console.log(getTypeName(/[hbc]at/gi)) // [object RegExp]

console.log('-----------------------------------------')




console.log(typeOf.isRegExp(true));  //false